14725
8048
Je ne suis qu'un débutant en codage Swift. Mon idée est assez simple qui est une application avec deux boutons. Lorsque vous cliquez dessus, un champ de texte changera son texte.
Dans le Main.StoryBoard, j'ajoute un champ de texte et deux boutons.
Dans le fichier ViewController.swift. J'écris comme ceci:
importer UIKit
classe ViewController: UIViewController {
@IBOutlet faible var textfield: UITextField!
@IBOutlet bouton var faible: UIButton!
@IBOutlet faible var button2: UIButton!
@IBAction func action1 (_ expéditeur: UIButton) {
textfield.text = "vous venez de cliquer sur bouton1"
}
@IBAction func action2 (_ expéditeur: UIButton) {
textfield.text = "vous venez de cliquer sur le bouton2"
}
}
Tout va bien. Cependant, une erreur apparaît qui montre:
thread1: signal SIGABRT
dans le fichier AppDelegate.swift line:
classe AppDelegate: UIResponder, UIApplicationDelegate
Quel est le problème avec mon code? 
Pour résoudre le problème, nettoyez d'abord le projet, puis reconstruisez-le.
Pour nettoyer le projet, allez dans MenuBar: Produit -> Nettoyer
Ensuite, pour reconstruire le projet, cliquez simplement sur le bouton Exécuter comme d'habitude.
|
Vous obtenez une erreur SIGABRT chaque fois que vous avez une prise déconnectée. Cliquez sur votre contrôleur de vue dans le storyboard et accédez aux connexions dans le panneau latéral (le symbole de la flèche). Voyez si vous avez une prise supplémentaire là-bas, une copie ou une autre non connectée. Si ce n'est pas le cas, vous n'avez peut-être pas connecté correctement vos prises à votre code.
N'oubliez pas que SIGABRT se produit lorsque vous essayez d'appeler une prise (bouton, vue, champ de texte, etc.) qui n'est pas là.
|
Pour moi, ce n'était pas un exutoire. J'ai résolu le problème en allant à l'erreur Et en lisant ce qu'il a dit. (Aussi Noob ..)
C'était l'erreur:
Et la solution était ici:
Faites simplement défiler vers le haut dans la sortie et l'erreur sera révélée.
|
Une raison courante de ce type d'erreur est que vous avez peut-être changé le nom de votre IBOutlet ou IBAction, vous pouvez simplement le vérifier en accédant au code source.
Cliquez sur le tableau principal, puis sélectionnez Ouvrir comme
puis sélectionnez le code source
le code source s'ouvrira
puis vérifiez s'il existe le nom de l'iboutlet ou de l'ibaction que vous avez modifié, s'il y en a, sélectionnez la pièce et supprimez-la, puis créez à nouveau iboutlet ou ibaction.
Cela devrait résoudre votre problème
|
Dans mon cas, je n'obtenais pas d'erreur juste le plantage dans AppDelegate et j'ai dû décocher l'option suivante: OS_ACTIVITY_MODE alors je pourrais obtenir la vraie raison du crash dans mon fichier .xib
J'espère que cela peut vous aider aussi :)
|
J'ai eu le même problème. J'ai créé un bouton dans le storyboard et l'ai connecté au ViewController, puis j'ai supprimé le bouton plus tard. Donc, la connexion était toujours là, mais le bouton ne l'était pas, et j'ai donc eu la même erreur que vous.
Pour réparer:
Accédez à l'inspecteur de connexion (la flèche dans le coin supérieur droit, dans votre storyboard) et supprimez toutes les connexions inutilisées.
|
Si vous rencontrez cela dans Xcode 10, vous devrez nettoyer avant la construction. Ou passez au système de génération hérité. Fichier -> Paramètres de l'espace de travail ... -> Build System: Legacy Build System.
|
Dans mon cas, il n'y avait aucun journal.
Mon erreur a été de pousser un contrôleur de vue dans une pile de navigation qui faisait déjà partie de la pile de navigation.
|
Parfois, cela se produit également lorsque la fonction doit être exécutée uniquement dans le thread principal, vous pouvez donc la corriger en l'attribuant au thread principal comme suit: -
DispatchQueue.main.async {
votre code ici
}
|
Pour moi, cette erreur était due au fait que j'avais une étape de préparation de la séquence qui n'était pas applicable à la séquence en cours.
longue histoire:
override func prepare (pour segue: UIStoryboardSegue, sender: Any?) {
laissez gosetup = segue.destination as! Mettre à jour
gosetup.wherefrom = updatestring
}
Cela était fait pour tous les segue alors que ce n'était que pour un seul. J'ai donc créé un booléen et placé le gosetup à l'intérieur.
|
Il s'agit d'une erreur très courante et peut se produire pour plusieurs raisons. Le plus courant est lorsqu'un IBOUTLET / IBACTION connecté à un contrôleur de vue dans le storyboard est supprimé du fichier swift mais pas du storyboard. Si ce n'est pas le cas, utilisez le journal de la barre d'outils inférieure pour découvrir quelle est l'erreur et la diagnostiquer. Vous pouvez utiliser des points d'arrêt et le débogage pour vous aider à trouver l'erreur.
Pour savoir comment corriger l'erreur, veuillez utiliser cet article que j'ai trouvé sur Google: https://rayaans.com/fixing-the-notorious-sigabrt-error-in-xcode
|
Dans mon cas, j'utilisais RxSwift pour effectuer une recherche.
J'avais largement continué à utiliser une instance partagée d'une classe particulière dans la méthode onNext, ce qui la rendait probablement inaccessible (Mutex).
Assurez-vous que de telles instances ne sont traitées avec soin que lorsque cela est absolument nécessaire.
Dans mon cas, j'ai utilisé au préalable quelques variables pour stocker en toute sécurité (et séquentiellement) les valeurs de retour des méthodes de l'instance partagée et les ai réutilisées dans le bloc onNext.
|
J'ai eu le même problème. Dans mon cas, je viens d'écraser le fichier
GoogleService-Info.plist
sur ce chemin:
Platform \ ios \ YOUR_APP_NAME \ Resources \ Resources
Dans mon cas, les fichiers étaient présents sans données.
|
Question très active. Gagnez 10 points de réputation pour répondre à cette question. L'exigence de réputation permet de protéger cette question contre les spams et les activités sans réponse.
Ce n'est pas la réponse que vous recherchez? Parcourez les autres questions marquées ios swift ou posez votre propre question.